package jcore.callback;

//发出事件信号的类必须等待实现了 Callback 接口的对象，并在适当时候调用 doJob() 方法。
//A类相当于通知类，告诉实现了 Callback 接口的类对象该干活了，去完成一些特定的工作
public class A {
	
	//interface
	private Callback callback;
	//谓词，标示某个事件是否已发生
	private boolean somethingHappened;
	
	public A(Callback callback) {
		this.callback = callback;
	}
	
	public void doMyJob() {
		if (somethingHappened) {//检查设置的谓词，事件是否发生了
			
			//某事件发生后，调用实现了接口的对象的doJob方法去做一些特定的工作
			callback.doJob();
		}
	}
	
	public void setSomethingHappend() {
		somethingHappened =true;
	}
}
